Conductor (software)
   HOME

TheInfoList



OR:

Conductor is a free and
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
microservice A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of Loose coupling, loosely-coupled, granularity, fine-grained services, c ...
orchestration Orchestration is the study or practice of writing music for an orchestra (or, more loosely, for any musical ensemble, such as a concert band) or of adapting music composed for another medium for an orchestra. Also called "instrumentation", orc ...
software platform originally developed by
Netflix Netflix, Inc. is an American subscription video on-demand over-the-top streaming service and production company based in Los Gatos, California. Founded in 1997 by Reed Hastings and Marc Randolph in Scotts Valley, California, it offers a fil ...
. Conductor was developed by Netflix to solve the problems of orchestrating microservices and business processes at scale in a cloud native environment. It was released under the Apache License 2.0 and has been adopted by companies looking to orchestrate their processes at scale in a cloud native environment. Conductor belongs to a set of software products that allows developers to build resilient, high-scale, cloud-native stateful applications using stateless primitives.


Architecture

Conductor server is written in Java with APIs exposed over HTTP and gRPC interfaces making it possible to do language agnostic development. A set of client libraries are made available by Netflix and community in Java, Python and Go. Conductor uses a lightweight JSON based schema with rich programming language constructs such as fork/join, switch case, loops and exception handling to define the flows. At the heart of Conductor is a queuing system that is used to schedule tasks and manage the process flows.  Conductor leverages a pluggable model allowing different implementations of the queuing system.  Open source version uses Dyno-Queues developed at Netflix for queuing as default implementation The workflows are defined as the orchestration among the tasks which can be a system level construct such as fork, join, switch, loop, an external HTTP endpoint implementing business logic or a task worker running outside of Conductor servers and listening for work to be scheduled by the server. The workers communicate with the server using pre-defined APIs over HTTP or gRPC. Conductor provides lightweight libraries to manage worker states in Java, Python and Go and additional languages can be used to implement logic using provided APIs. Conductor uses pluggable architecture model allowing for different databases to store its states. The current version has support for Redis (Stand-alone, Sentinel, Cluster and Dynomite), Postgres, Mysql, Cassandra and uses Elasticsearch as indexing mechanism. The UI is written in
ReactJS React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on components. It is maintained by Meta (formerly Facebook) and a community of individual developers and compa ...
and provides ability to search, visualize and manage the workflow states.


Cloud Hosted Services

Orkes
- was founded by the creators of Netflix Conductor an

in various clouds and in data center.


References

{{Netflix Netflix 2016 software Free software for cloud computing Free and open-source software Linux software Software using the Apache license